import { createStore } from 'vuex';
import path from '@/store/modules/path.js';

export default createStore({
	modules:{
		path
	},
  state: {
    popupShow: false,  // 弹窗默认不显示
    getData: {},       // 获取的数据默认为空对象
    cartList: []       // 购物车列表默认为空数组
  },
  
  getters: {
    // 从 state 中获取 popupShow，默认返回 false
    popupShow: state => state.popupShow,

    // 获取 getData，默认返回空对象
    getData: state => state.getData,

    // 获取 cartList，默认返回空数组
    cartList: state => state.cartList
  },

  mutations: {
    // 更新购物车列表
    updateCartListMutation(state, newCartList) {
      state.cartList = newCartList;
    },
    
    // 设置弹窗显示状态
    setPopupShow(state, status) {
      state.popupShow = status;
    },
    
    // 设置获取的数据
    setData(state, data) {
      state.getData = data;
    },

    // 清空购物车（可以加个 reset 功能）
    resetCartList(state) {
      state.cartList = [];
    }
  },

  actions: {
    // 更新购物车列表
    updateCartList({ commit }, payload) {
      commit('updateCartListMutation', payload);
    },

    // 设置弹窗显示状态
    setPopupShow({ commit }, payload) {
      commit('setPopupShow', payload);
    },

    // 设置获取的数据
    setData({ commit }, payload) {
      commit('setData', payload);
    },

    // 清空购物车
    clearCartList({ commit }) {
      commit('resetCartList');
    }
  }
});
